<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Windows notes</title>
    <link rel="stylesheet" href="gettingStarted.css" type="text/css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
    <link rel="start" href="index.html" title="Berkeley DB Installation and Build Guide" />
    <link rel="up" href="build_win.html" title="Chapter 5.  Building Berkeley DB for Windows" />
    <link rel="prev" href="build_win_test.html" title="Running the test suite under Windows" />
    <link rel="next" href="build_win_faq.html" title="Windows FAQ" />
  </head>
  <body>
    <div xmlns="" class="navheader">
      <div class="libver">
        <p>Library Version 12.1.6.2</p>
      </div>
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">Windows notes</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="build_win_test.html">Prev</a> </td>
          <th width="60%" align="center">Chapter 5.  Building Berkeley DB for Windows </th>
          <td width="20%" align="right"> <a accesskey="n" href="build_win_faq.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="sect1" lang="en" xml:lang="en">
      <div class="titlepage">
        <div>
          <div>
            <h2 class="title" style="clear: both"><a id="build_win_notes"></a>Windows notes</h2>
          </div>
        </div>
      </div>
      <div class="orderedlist">
        <p>
            If a system memory environment is closed by all
            processes, subsequent attempts to open it will return an
            error. To successfully open a transactional environment in
            this state, recovery must be run by the next process to
            open the environment. For non-transactional environments,
            applications should remove the existing environment and
            then create a new database environment. 
        </p>
        <ol type="1">
          <li> 
            Berkeley DB does not support the Windows XP,
            Windows 2003 or earlier Windows platforms.
        </li>
          <li> 
            On Windows, system paging file memory is freed on
            last close. For this reason, multiple processes sharing a
            database environment created using the <a href="../api_reference/C/envopen.html#envopen_DB_SYSTEM_MEM" class="olink">DB_SYSTEM_MEM</a>
            flag must arrange for at least one process to always have
            the environment open, or alternatively that any process
            joining the environment be prepared to re-create it.
        </li>
          <li>
            When using the <a href="../api_reference/C/envopen.html#envopen_DB_SYSTEM_MEM" class="olink">DB_SYSTEM_MEM</a> flag, Berkeley DB
            shared regions are created without ACLs, which means that
            the regions are only accessible to a single user. If wider
            sharing is appropriate (for example, both user
            applications and Windows/NT service applications need to
            access the Berkeley DB regions), the Berkeley DB code will
            need to be modified to create the shared regions with the
            correct ACLs. Alternatively, by not specifying the
            <a href="../api_reference/C/envopen.html#envopen_DB_SYSTEM_MEM" class="olink">DB_SYSTEM_MEM</a> flag, filesystem-backed regions will be
            created instead, and the permissions on those files may be
            directly specified through the <a href="../api_reference/C/envopen.html" class="olink">DB_ENV-&gt;open()</a> method. 
        </li>
          <li>
            Applications that operate on wide character strings
            can use the Windows function WideCharToMultiByte with the
            code page CP_UTF8 to convert paths to the form expected by
            Berkeley DB. Internally, Berkeley DB calls
            MultiByteToWideChar on paths before calling Windows
            functions.
        </li>
          <li>
            Various Berkeley DB methods take a <span class="bold"><strong>mode</strong></span> argument, which is
            intended to specify the underlying file permissions for
            created files. Berkeley DB currently ignores this argument
            on Windows systems. 
            <p>
                It would be possible to
                construct a set of security attributes to pass to
                <span class="bold"><strong>CreateFile</strong></span> that
                accurately represents the mode. In the worst case,
                this would involve looking up user and all group
                names, and creating an entry for each. Alternatively,
                we could call the <span class="bold"><strong>_chmod</strong></span> 
                (partial emulation) function
                after file creation, although this leaves us with an
                obvious race. 
            </p><p> 
                Practically speaking, however, these efforts would
                be largely meaningless on a FAT file system, which
                only has a "readable" and "writable" flag, applying to
                all users. 
            </p></li>
        </ol>
      </div>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="build_win_test.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="build_win.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="build_win_faq.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">Running the test suite under
        Windows </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> Windows FAQ</td>
        </tr>
      </table>
    </div>
  </body>
</html>
